package com.platform.base.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.base.domain.BaseFactory;
import com.platform.base.domain.BaseLocation;
import com.platform.base.domain.CollectorInfo;

/**
 * 采集器信息Service接口
 * 
 * @author wangqi
 * @date 2020-09-25
 */
public interface ICollectorInfoService extends IService<CollectorInfo>
{
    /**
     * 查询采集器信息列表
     * 
     * @param collectorInfo 采集器信息
     * @return 采集器信息集合
     */
    public List<CollectorInfo> selectCollectorInfoList(CollectorInfo collectorInfo);

    /**
     * 查询采集器信息
     *
     * @param collectorId 采集器信息
     * @return 采集器信息
     */
    public CollectorInfo selectCollectorInfoById(String collectorId);

    /**
     * 新增采集器信息
     * 
     * @param collectorInfo 采集器信息
     * @return 结果
     */
    public int insertCollectorInfo(CollectorInfo collectorInfo);

    /**
     * 修改采集器信息
     * 
     * @param collectorInfo 采集器信息
     * @return 结果
     */
    public int updateCollectorInfo(CollectorInfo collectorInfo);

    /**
     * 批量删除采集器信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCollectorInfoByIds(String ids);

    /**
     * 校验采集器是否唯一
     *
     * @param collectorInfo 采集器信息
     * @return 结果
     */
    public String checkCollectorUnique(CollectorInfo collectorInfo);

    /**
     * 导入采集器信息
     *
     * @param infoList 采集器信息
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importInfo(List<CollectorInfo> infoList, Boolean isUpdateSupport, String operName);

    /**
     * 采集器初始化
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String initializeInfo(String[] collectorIds) throws InterruptedException;

    /**
     * 设置采集器心跳时间
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String heartInfo(String[] collectorIds, String hex) throws InterruptedException;

    /**
     * 设置采集器抄表时间
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String settimeInfo(String[] collectorIds, String hex) throws InterruptedException;

    /**
     * 批量设置阀门开度
     *
     * @param collectorId 采集器信息
     * @return 结果
     */
    public String apertureInfo(String collectorId, String hex) throws InterruptedException;

    /**
     * 修改服务器地址
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String changeInfo(String[] collectorIds, String[] ips, String[] ports) throws InterruptedException;

    /**
     * 查询采集器时间
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String collectInfo(String[] collectorIds) throws InterruptedException;

    /**
     * 校准采集器时间
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String correctInfo(String[] collectorIds) throws InterruptedException;

    /**
     * 校准采集器时间
     *
     * @param collectorId 采集器信息
     * @return 结果
     */
    public String selectInfo(String collectorId) throws InterruptedException;

    /**
     * 批量数据采集
     *
     * @param collectorId 采集器信息
     * @return 结果
     */
    public String checkInfo(String collectorId) throws InterruptedException;
    /**
     * 供暖标志下发
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String heatInfo(String[] collectorIds) throws InterruptedException;

    /**
     * 非供暖标志下发
     *
     * @param collectorIds 采集器信息
     * @return 结果
     */
    public String heatfInfo(String[] collectorIds) throws InterruptedException;
}
